Traditional testing methods often involve creating inputs to a system and verifying the outputs against the expected correct response. To date, inputs have been supplied and outputs have been verified either by manual or automated test execution. Manual execution is time and labor intensive. Thus, automation is important to achieve economical test coverage.
Automation using scripts enables simulating manual activities with no or minimal human intervention. However, in a system where a set of inputs depend on the timing and status of a set of outputs, simple scripts may be inadequate. For example, multiple features of a product may need to be tested consecutively. The execution of a first feature may depend on the completion of a second feature. When consecutive testing of such features is performed in order to determine the load and reliability of the product, simple scripts may not be able to detect the status change of each feature test execution and analyze the outputs in time. Thus, monitoring the progress and validating the outputs may present a challenge. This challenge may be particularly acute in a distributed system, where different features of a product may be deployed across multiple hosts. In order to thoroughly test the product, the start and end of different test scripts may require careful planning and coordination.
There is a need, therefore, for an improved automated time-based testing method for distributed systems.